//
// Created by ChaoDONG on 2021-03-17.
//

/* rules.c -- precedence test */
/* rules.c -- 优先级测试 */

#include <stdio.h>

int main(void){

    int top, score;

    top = score = -(2 + 5) * 6 + (4 + 3 * (2 + 3));

    printf("top = %d, score = %d\n",
           top, score);

    /* 表达式如下：
    top = score = -7 * 6 + (4 + 3 * (2 + 3))
    下一步，计算2 + 3的值。表达式变成：
    top = score = -7 * 6 + (4 + 3 * 5)
    接下来，因为圆括号中的*比+优先级高，所以表达式变成：
    top = score = -7 * 6 + (4 + 15)
    然后，表达式为：
    top = score = -7 * 6 + 19
    -7乘以6后，得到下面的表达式：
    top = score = -42 + 19
    然后进行加法运算，得到：
    top = score = -23
    现在，-23被赋值给score，最终top的值也是-23。记住，=运算符的结合
    律是从右往左。
     */

    return 0;
}
